﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NBusiness.Query;

namespace NBusiness.Data.Providers.SqlServer.Query
{
    public abstract class SqlParameters : IHaveParameters
    {
        private List<IParameterValue> _parameters = new List<IParameterValue>();
        public IList<IParameterValue> Parameters
        {
            get { return _parameters; }
        }

        public IParameterValue Parameter(string name)
        {
            IParameterValue parameter = _parameters.FirstOrDefault(v => v.Name == name);
            if (parameter == null)
            {
                parameter = new SqlParameterValue(name, null);
                _parameters.Add(parameter);
            }

            return parameter;
        }

        public IParameterValue Parameter(string name, ParameterValueDirection direction)
        {
            IParameterValue parameter = Parameter(name);
            parameter.Direction = direction;
            return parameter;
        }
    }
}
